/**
 * @description: 队列数据结构：排队、出队、检查队头、判空
 * 先进先出
 */

class Queue {
  constructor(){
    this.items = []
  }

  // 排队
  enqueue(item){
    this.items.push(item)
  }

  // 出队
  dequeue(){
    return this.items.shift()
  }

  // 查看队列头部元素
  peek(){
    return this.items[0]
  }

  // 判断队列是否是空
  isEmpty(){
    return this.items.length === 0
  }
}

/* 调用 */

const queue = new Queue()
queue.isEmpty();    // true
queue.enqueue('A');
queue.enqueue('B');
queue.enqueue('C');
queue.isEmpty();    // false
queue.peek();       // 'A'
queue.dequeue();    // 'A'
queue.dequeue();    // 'B'
queue.dequeue();    // 'C'